2 #ifndef FRAMELIB_CONTEXT_H 3 #define FRAMELIB_CONTEXT_H 20 return a.mGlobal == b.mGlobal && a.mReference == b.mReference;
30 template <
class T, T *(Global::*getMethod)(
void *),
void(Global::*releaseMethod)(
void *)>
36 ManagedPointer(
const FrameLib_Context &context) : mGlobal(context.mGlobal), mReference(context.mReference)
38 mPointer = (mGlobal->*getMethod)(mReference);
51 (mGlobal->*releaseMethod)(mReference);
59 T *operator->() {
return mPointer; }
60 operator bool()
const {
return mPointer != NULL; }
66 ManagedPointer(
const ManagedPointer&);
67 ManagedPointer& operator=(
const ManagedPointer&);
84 typedef ManagedPointer<FrameLib_LocalAllocator, &Global::getAllocator, &Global::releaseAllocator>
Allocator;
85 typedef ManagedPointer<FrameLib_ProcessingQueue, &Global::getProcessingQueue, &Global::releaseProcessingQueue>
ProcessingQueue;
FrameLib_Context(FrameLib_Global *global, void *reference)
Definition: FrameLib_Context.h:80
Definition: FrameLib_Global.h:12
Definition: FrameLib_Context.h:10
friend bool operator==(const FrameLib_Context &a, const FrameLib_Context &b)
Definition: FrameLib_Context.h:18
ManagedPointer< FrameLib_ProcessingQueue, &Global::getProcessingQueue, &Global::releaseProcessingQueue > ProcessingQueue
Definition: FrameLib_Context.h:85
friend bool operator!=(const FrameLib_Context &a, const FrameLib_Context &b)
Definition: FrameLib_Context.h:23
ManagedPointer< FrameLib_LocalAllocator, &Global::getAllocator, &Global::releaseAllocator > Allocator
Definition: FrameLib_Context.h:84